Phân loại phần mềm CASE Computer-Aided Software Engineering

Alfonso Fuggetta đã phân loại phần mềm CASE thành ba loại:[7]

  1. Các công cụ (Tools) hỗ trợ các tác vụ cụ thể trong vòng đời của phần mềm.
  2. Các bàn làm việc (Workbenches) phối hợp hai hoặc nhiều công cụ tập trung vào một phần cụ thể của vòng đời phần mềm.
  3. Các môi trường (Environments) phối hợp hai hoặc nhiều công cụ hoặc nhiều bàn làm việc và hỗ trợ vòng đời phần mềm hoàn chỉnh.

Các công cụ (Tools)

Các công cụ CASE hỗ trợ các công việc cụ thể trong chu trình phát triển phần mềm. Chúng có thể được chia thành các loại sau:

  1. Mô hình kinh doanh và phân tích. Các công cụ mô hình đồ họa. Ví dụ: mô hình E/R, mô hình đối tượng,…
  2. Phát triển. Các giai đoạn thiết kế và xây dựng của vòng đời. Gỡ lỗi môi trường. Ví dụ: Trình gỡ lỗi GNU (GNU Debugger).
  3. Xác minh và xác nhận. Phân tích mã và các thông số kỹ thuật về tính chính xác, hiệu suất,…
  4. Quản lý cấu hình. Kiểm soát việc đăng ký, kiểm tra các đối tượng lưu trữ và các tệp tin. Ví dụ: SCCS, CMS.
  5. Chỉ số và đo lường. Phân tích mã cho tính phức tạp, mô đun, hiệu suất,…
  6. Quản lý dự án. Quản lý kế hoạch dự án, phân công nhiệm vụ, lên kế hoạch.

Một cách phổ biến khác để phân biệt các công cụ CASE là sự khác biệt giữa Upper CASE (công cụ ý tưởng) và Lower CASE (công cụ chỉ hỗ trợ lập trình). Các công cụ Upper CASE hỗ trợ mô hình kinh doanh và phân tích. Các công cụ Lower CASE hỗ trợ các hoạt động phát triển, như thiết kế vật lý, gỡ lỗi, xây dựng, thử nghiệm, tích hợp thành phần, bảo trì và công nghệ đảo ngược.[8]

Các bàn làm việc (Workbenches)

Các bàn làm việc tích hợp hai hoặc nhiều công cụ CASE và hỗ trợ các hoạt động xử lý phần mềm cụ thể. Do đó nó đạt được:

  • Một giao diện thống nhất, nhất quán (tích hợp giao diện).
  • Tích hợp liền mạch các công cụ và chuỗi công cụ (kiểm soát và tích hợp dữ liệu).

Một ví dụ về bàn làm việc là môi trường lập trình Visual Basic của Microsoft. Nó kết hợp nhiều công cụ phát triển: trình tạo giao diện đồ họa người dùng, trình biên tập mã thông minh, trình gỡ lỗi,… Hầu hết các sản phẩm CASE thương mại có xu hướng là những bàn làm việc tích hợp liền mạch hai hoặc nhiều công cụ. Các bàn làm việc cũng có thể được phân loại theo cách thức phân loại các công cụ như: tập trung vào phân tích, phát triển, xác minh... hay tập trung vào Upper CASE, Lower CASE hoặc các quy trình như quản lý cấu hình kéo dài suốt vòng đời phần mềm.

Các môi trường (Environments)

Một môi trường là một tập hợp các công cụ CASE hoặc các bàn làm việc, hỗ trợ quy trình phần mềm hoàn chỉnh trong khi các công cụ CASE chỉ tập trung vào một nhiệm vụ cụ thể hoặc một phần cụ thể của vòng đời. Các môi trường CASE được phân loại bởi A.Fuggetta như sau:[7]

  1. Bộ công cụ. Bộ sưu tập các công cụ ghép nối lỏng lẻo với nhau. Chúng thường được xây dựng trên các bàn làm việc của hệ điều hành như Unix Programmer's Workbench hoặc VMS VAX.
  2. Thế hệ thứ tư. Những môi trường này còn được gọi là 4GL – viết tắt của thuật ngữ “môi trường ngôn ngữ thế hệ thứ tư”. Đây là những môi trường đầu tiên cung cấp tích hợp sâu các công cụ. Thông thường các môi trường này tập trung vào các loại ứng dụng cụ thể. Ví dụ: Informix 4GL, Focus…
  3. Ngôn ngữ làm trung tâm. Các môi trường này dựa trên một ngôn ngữ hướng đối tượng duy nhất như môi trường Symbolics Lisp Genera hoặc VisualWorks Smalltalk từ Parcplace. Trong các môi trường này tất cả tài nguyên hệ điều hành là các đối tượng trong ngôn ngữ hướng đối tượng. Điều này cung cấp cơ hội gỡ lỗi và đồ họa mạnh mẽ nhưng có nhược điểm là phần lớn mã chương trình được phát triển bị giới hạn đối với ngôn ngữ cụ thể. Vì lý do trên, các môi trường này chủ yếu là các môi trường ngách trong CASE. Việc sử dụng chúng chủ yếu dành cho các dự án R&D.
  4. Tích hợp. Những môi trường này là một ví dụ về những gì mà hầu hết những người làm trong ngành công nghệ thông tin thường nghĩ đến khi nghĩ tới CASE. Ví dụ như: môi trường AD/Cycle của IBM, FOUNDATION của Andersen Consulting, hệ thống ICL CADES và DEC Cohesion. Các môi trường này cố gắng bao phủ toàn bộ vòng đời phần mềm từ phân tích đến bảo trì và cung cấp một kho cơ sở dữ liệu tích hợp để lưu trữ tất cả các kết quả của quy trình phần mềm. Kho phần mềm tích hợp là một điểm đặc biệt để phân định rõ loại công cụ này. Họ cung cấp nhiều mô hình thiết kế khác nhau cũng như hỗ trợ cho các mã ngôn ngữ khác nhau. Một trong các mục tiêu chính của những môi trường này là kỹ thuật khứ hồi (Round-trip engineering). Những môi trường này cũng thường được kết hợp với một phương pháp luận đặc biệt cho phát triển phần mềm. Ví dụ, bộ công cụ FOUNDATION của Andersen gắn chặt với phương pháp Andersen Method /1.
  5. Quy trình tập trung. Đây là phương pháp tích hợp tham vọng nhất. Các môi trường này không chỉ xác định chính xác các đối tượng cần phân tích và thiết kế của quy trình phần mềm mà còn sử dụng quy trình chính thức để kiểm soát và hướng dẫn các dự án phần mềm. Ví dụ như East, Enterprise II, Process Wise, Process Weaver, và Arcadia. 

Trong thực tế, sự khác biệt giữa bàn làm việc và môi trường rất linh hoạt. Ví dụ: Visual Basic là một bàn làm việc lập trình nhưng cũng được coi là một môi trường 4GL đối với nhiều người. Các tính năng để phân biệt các bàn làm việc và các môi trường là: khả năng tích hợp sâu thông qua một kho chứa dùng chung; ngôn ngữ phổ biến và một số phương pháp luận (môi trường tích hợp và trung tâm xử lý) hoặc tên miền (4GL) đặc trưng.